package com.ftg.learn.chapter04.domain;

import java.util.Arrays;

/**
 * 寝室  表示的是生活当中的一类寝室的抽象  统一的属性
 *   状态  编号   地址  床位  固件
 *    new BedRoom(301);
 *    new BedRoom(302);  个性化 值
 *   行为
 *
 *   pojo
 *   doorNum
 *   address
 *   humNum
 *   fireNum
 * domain 包  ： 模型
 *
 * @author 布衣
 */
public class BedRoom {

    private String doorNum;

    private String address;

    //代表最多住几个人
    private int humanNum;
    //现在住了几个人
    private int humanSize;

    public int getHumanNum(){
        return this.humanNum;
    }

    public int getHumanSize(){
        return humanSize;
    }
    //1对n
    private Human[] bedNum;

    //表示现在有几个固件
    private int firmSize;
    //最多固件数量
    private int firmNum;
    //1 对n
    private Firmware[] firmware;

    /**
     * 相当于getter
     * @return
     */
    public Human[] getAllHumans() {
        return Arrays.copyOf(bedNum, humanSize);
    }

    public boolean putFirmware(Firmware f1) {
        if (this.firmSize == this.firmNum) {
            return false;
        }
        firmware[firmSize++] = f1;
        return true;
    }

    /**
     * 相当setter吗
     *
     * @param human 人
     * @return true|false
     */
    public boolean intoBedRoom(Human human) {
        if (this.humanSize == this.humanNum) {
            return false;
        }
        System.out.println(bedNum.length);
        bedNum[humanSize++] = human;
        return true;
    }


    //来指定寝室初始人数
    public BedRoom(int humanNum, int firmNum) {
        this.humanNum = humanNum;
        this.firmNum = firmNum;

        bedNum = new Human[humanNum];
        firmware = new Firmware[firmNum];
    }

    public String getDoorNum() {
        return doorNum;
    }

    public void setDoorNum(String doorNum) {
        this.doorNum = doorNum;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    // 3 泛型
    // 寝室 1
    // 床位 n 1 (id 寝室id 人员id)
    // 人员   1
}
